div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
↳ QTRS
↳ Overlay + Local Confluence
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
DIV(x, s(y)) → D(x, s(y), 0)
COND(true, x, y, z) → PLUS(s(y), z)
PLUS(n, s(m)) → PLUS(n, m)
COND(true, x, y, z) → D(x, s(y), plus(s(y), z))
D(x, s(y), z) → COND(ge(x, z), x, y, z)
D(x, s(y), z) → GE(x, z)
GE(s(u), s(v)) → GE(u, v)
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
DIV(x, s(y)) → D(x, s(y), 0)
COND(true, x, y, z) → PLUS(s(y), z)
PLUS(n, s(m)) → PLUS(n, m)
COND(true, x, y, z) → D(x, s(y), plus(s(y), z))
D(x, s(y), z) → COND(ge(x, z), x, y, z)
D(x, s(y), z) → GE(x, z)
GE(s(u), s(v)) → GE(u, v)
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
PLUS(n, s(m)) → PLUS(n, m)
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
PLUS(n, s(m)) → PLUS(n, m)
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
PLUS(n, s(m)) → PLUS(n, m)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
GE(s(u), s(v)) → GE(u, v)
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
GE(s(u), s(v)) → GE(u, v)
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
GE(s(u), s(v)) → GE(u, v)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
D(x, s(y), z) → COND(ge(x, z), x, y, z)
COND(true, x, y, z) → D(x, s(y), plus(s(y), z))
div(x, s(y)) → d(x, s(y), 0)
d(x, s(y), z) → cond(ge(x, z), x, y, z)
cond(true, x, y, z) → s(d(x, s(y), plus(s(y), z)))
cond(false, x, y, z) → 0
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
D(x, s(y), z) → COND(ge(x, z), x, y, z)
COND(true, x, y, z) → D(x, s(y), plus(s(y), z))
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
div(x0, s(x1))
d(x0, s(x1), x2)
cond(true, x0, x1, x2)
cond(false, x0, x1, x2)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
COND(true, x, y, z) → D(x, s(y), plus(s(y), z))
D(x, s(y), z) → COND(ge(x, z), x, y, z)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
(1) (D(x3, s(x4), plus(s(x4), x5))=D(x6, s(x7), x8) ⇒ D(x6, s(x7), x8)≥COND(ge(x6, x8), x6, x7, x8))
(2) (D(x3, s(x4), x8)≥COND(ge(x3, x8), x3, x4, x8))
(3) (COND(ge(x9, x11), x9, x10, x11)=COND(true, x12, x13, x14) ⇒ COND(true, x12, x13, x14)≥D(x12, s(x13), plus(s(x13), x14)))
(4) (ge(x9, x11)=true ⇒ COND(true, x9, x10, x11)≥D(x9, s(x10), plus(s(x10), x11)))
(5) (true=true ⇒ COND(true, x19, x10, 0)≥D(x19, s(x10), plus(s(x10), 0)))
(6) (ge(x21, x22)=true∧(∀x23:ge(x21, x22)=true ⇒ COND(true, x21, x23, x22)≥D(x21, s(x23), plus(s(x23), x22))) ⇒ COND(true, s(x21), x10, s(x22))≥D(s(x21), s(x10), plus(s(x10), s(x22))))
(7) (COND(true, x19, x10, 0)≥D(x19, s(x10), plus(s(x10), 0)))
(8) (COND(true, x21, x10, x22)≥D(x21, s(x10), plus(s(x10), x22)) ⇒ COND(true, s(x21), x10, s(x22))≥D(s(x21), s(x10), plus(s(x10), s(x22))))
POL(0) = 0
POL(COND(x1, x2, x3, x4)) = -1 - x1 + x2 + x3 - x4
POL(D(x1, x2, x3)) = -1 + x1 + x2 - x3
POL(c) = -1
POL(false) = 0
POL(ge(x1, x2)) = 0
POL(plus(x1, x2)) = x1 + x2
POL(s(x1)) = 1 + x1
POL(true) = 0
The following pairs are in Pbound:
D(x, s(y), z) → COND(ge(x, z), x, y, z)
The following rules are usable:
COND(true, x, y, z) → D(x, s(y), plus(s(y), z))
true → ge(u, 0)
false → ge(0, s(v))
n → plus(n, 0)
s(plus(n, m)) → plus(n, s(m))
ge(u, v) → ge(s(u), s(v))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ DependencyGraphProof
↳ QDP
COND(true, x, y, z) → D(x, s(y), plus(s(y), z))
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ QDP
↳ DependencyGraphProof
D(x, s(y), z) → COND(ge(x, z), x, y, z)
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
plus(x0, 0)
plus(x0, s(x1))